#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
瀚越包装方案匹配工具
应用程序入口点
"""

import sys
import os

# 添加src目录到Python路径，确保模块可以正确导入
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

from PyQt5.QtWidgets import QApplication, QMessageBox
from PyQt5.QtCore import Qt
from ui.main_window import MainWindow
from utils.logger import setup_logger
from configs.config_manager import ConfigManager

# 设置日志记录器
logger = setup_logger(__name__)

def main():
    """应用程序主函数"""
    try:
        # 确保中文显示正常
        os.environ['QT_FONT_DPI'] = '96'
        
        # 创建Qt应用程序实例
        app = QApplication(sys.argv)
        
        # 设置应用程序信息
        app.setApplicationName("瀚越包装方案匹配工具")
        app.setApplicationVersion("0.1.0")
        
        # 加载配置
        config_manager = ConfigManager()
        config = config_manager.load_config()
        logger.info(f"应用程序启动，版本: {app.applicationVersion()}")
        
        # 创建并显示主窗口
        main_window = MainWindow(config)
        main_window.show()
        
        # 运行应用程序事件循环
        sys.exit(app.exec_())
        
    except Exception as e:
        logger.critical(f"应用程序启动失败: {str(e)}")
        # 如果是在GUI环境中，显示错误消息
        if QApplication.instance():
            QMessageBox.critical(None, "启动错误", f"应用程序启动失败:\n{str(e)}")
        else:
            print(f"应用程序启动失败: {str(e)}")
        sys.exit(1)

if __name__ == "__main__":
    main()